package com.baofu.paycore.manager.storer;

import com.baofu.paycore.manager.model.preAuth.PreAuthBO;

import java.util.Date;

/**
 * 预授权处理
 *
 * <p>
 *  1.查询预授权主单信息
 * </p>
 * User: xin deng  Date: 16/8/30 ProjectName: paycore Version: 1.0
 */
public interface PreAuthRepository extends OrderRepository<PreAuthBO>{

    /**
     * 获取预授权信息
     *
     * @param origPayNo         原支付单号
     * @param origRequestDate   原请求日期
     * @param origRequestBizNo  原请求业务编号
     * @param origOrderNo       原订单号
     * @param origRequestSystem 原请求系统
     * @return                  预授权信息
     */
    PreAuthBO getPreAuthByOrig(String origPayNo, Date origRequestDate, String origRequestBizNo,
                               String origOrderNo, String origRequestSystem);

    /**
     * 依原支付单号查询预授权信息
     *
     * @param origPayNo         原支付单号
     * @return                  预授权信息
     */
    PreAuthBO getPreAuthByOrigPayNo(String origPayNo);

    /**
     * 更新预授权撤销信息
     *
     * @param preAuthBO         预授权信息
     */
    void updatePreAuthCancel(PreAuthBO preAuthBO);
}
